3.5.1 文法の概観
MV命令文の文法は複雑なため、まず例を数点用いて各部のおおまかな文法と効果を述べておく。
code:例 1
mvp/n64i01 $p0@0 $lc0@2.1
mvp/n64i01がオペコード、$p0@0が読み出し元オペランド、$lc0@2.1が書き込み先オペランドである。
オペコードは/の前後で基本モード部とパラメータ部に分かれる。
オペコードの基本モード部は、mvがMV命令であることを表す固定文字列であり、pが基本モードが個別転送であることを示す。
オペコードのパラメータ部は、n64が転送語数が 64 長語であること、タグ番号が0x01であることをそれぞれ示す。
code:例 2
mvp/n64 $lc0@2.1$p0@0
例 1 と異なりタグが指定されていない。
タグについては、待ち合わせなしでもMV命令同士の完了タイミングの前後関係が確定することがあるので、文法としては省略可能である。
例えば、次は正しいアセンブリである。
code:txt
mvp/n64 $lc0@2.1$p0@0
mvp/n64i01 $lc64@2.1 $p64@0
nop;wait i01
code:例 3
mvrdfadd/n128 $lc0 $d0
縮約転送では精度指定が必要で、その後の演算指定と合わせて縮約演算の内容を決める。
この場合はdすなわち倍精度のfaddすなわち浮動小数点数加算を行う。